1. Technical Field
The present invention relates generally to data processing systems. More particularly, the present invention relates to a method, system, and product for managing window services in order to present the same graphical user interface to native UNIX applications and Java applications in a computer system executing a UNIX-based operating system and a Java desktop.
2. Description of Related Art
Computer systems often utilize a graphical user interface to present information to users. The graphical user interface represents icons, window frames, menus, dialog boxes, and other items on a computer system's display screen. Users are more efficient when computer systems utilize a consistent graphical user interface (GUI) to present information.
In current embodiments, UNIX window managers provide both the look of the desktop, by rendering the desktop background, icons, and other desktop elements, and the feel of the desktop, i.e. its behavior. They also have responsibility for the rendering and user interaction with the frame windows attached to applications.
A problem arises, however, when creating a new desktop that is written in Java which desires to manage the look and feel of the desktop. The Java Virtual Machine and its libraries are not designed to fulfill the responsibilities that a window manager has to native UNIX applications. For example, without a window manager to provide frame window support, native applications will not have frame windows.
FIG. 1 depicts a computer system 100 executing either an OS/2 or a Windows operating system 102, a desktop 104, and applications 106 in accordance with the prior art. OS/2 is a trademark of International Business Machines. Windows is a trademark of Microsoft Corporation. Applications executing on these platforms manage their own frame windows, obviating the necessity of the Java desktop to provide these capabilities in system 100.
FIG. 2 illustrates a computer system 200 executing a UNIX-based operating system 202, a desktop 204 implemented in the C language, a window manager 206, and UNIX applications 208 written for a UNIX-based operating system in accordance with the prior art. Window manager 206 provides a frame window and handles the interaction between the frame windows and the desktop for applications 208. Unix-based operating system may include any UNIX operating system, such as AIX.
FIG. 3 depicts a computer system 300 executing a UNIX-based operating system 302 and having a Java desktop 304 in accordance with the prior art. Java, originally developed by Sun Microsystems, is an object-oriented, multi-threaded, portable, platform-independent, secure programming environment used to develop, test, and maintain software programs. Java programs have found extensive use on the Internet. These programs include full-featured interactive, standalone applications, as well as smaller programs, known as applets, that run in a Java-enabled Web browser or applet viewer.
A window manager, however, is not provided in computer system 300. When native UNIX applications are executed on computer system 300, the application client area will be displayed, but no frame window will enclose the client application area. This behavior would be considered faulty by an end user of this system.
Computer system 300 could have an existing window manager added that would provide the frame window rendering and interaction, but this would introduce two desktop features into the system, i.e. the native window manager and Java desktop, and these two desktop features could present conflicting GUI characteristics to the end user.
The rendering of native UNIX applications in a graphical environment is based on a client/server window system known as X Windows, initially developed at the Massachusetts Institute of Technology. X Windows provides a protocol for the client and server portions of an application to communicate with each other for display and input. An X Windows application consists of an application client area that is rendered by the application, and a frame window that is rendered and managed by the window manager. Events related to the application client window are handled by the application. Events related to the frame window are handled by the window manager.
Therefore, a need exists for the function of the window manager to be distributed between a Java desktop manager and a window manager proxy focused on the management of message passing between applications requiring window manager services and the Java desktop manager in a computer system executing a UNIX-based operating system with a Java desktop, but having no full featured window manager.